import cv2
from utils.common import load_image, show_image, make_dirs  # 导入公共函数
from utils.config import exp5_point_path, exp5_output_dir  # 导入输出路径

# 确保输出目录存在
make_dirs(exp5_output_dir)

# 加载图片并显示 - 使用load_image()保持一致性
image = load_image()
show_image("Original Image", image)

# 灰度化
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
show_image("Grayscale Image", gray_image)

# Harris角点检测
dst = cv2.cornerHarris(gray_image, blockSize=2, ksize=3, k=0.04)
dst = cv2.dilate(dst, None)

# 显示角点
img_with_corners = image.copy()  # 使用原始彩色图像作为背景
# 标记角点为红色
img_with_corners[dst > 0.01 * dst.max()] = [0, 0, 255]

# 显示并保存结果
show_image("Harris Corners", img_with_corners)
cv2.imwrite(exp5_point_path, img_with_corners)
print(f"角点检测结果已保存到：{exp5_point_path}")

# 可选：保存中间结果
cv2.imwrite(f"{exp5_output_dir}/harris_response.jpg", dst)